<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>OCCI Requirements</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.75.2"/></head><body><div class="article" title="OCCI Requirements"><div class="titlepage"><div><div><h2 class="title"><a id="id388878"/>OCCI Requirements</h2></div></div><hr/></div><div class="section" title="Functional Requirements"><div class="titlepage"><div><div><h2 class="title"><a id="id388889"/>Functional Requirements</h2></div></div></div><p>This section deals with the functional requirements. The
    requirements have been split up in tables and prioritized.</p><div class="table"><a id="id388900"/><p class="title"><b>Table 1. Functional requirements on VM description</b></p><div class="table-contents"><table summary="Functional requirements on VM description" border="1"><colgroup><col/><col/><col/><col/></colgroup><thead><tr><th style="text-align: center">ID</th><th style="text-align: center">Description</th><th style="text-align: center">Usecases</th><th style="text-align: center">Priority</th></tr></thead><tbody><tr><td>A.1.1</td><td>Attributes to define memory, CPU, disk and network
            requirements should be available.</td><td>2.2, 2.3, 2.6</td><td>High</td></tr><tr><td>A.1.2.</td><td>Attributes to define placement constraints, such as
            geographical location must be supported</td><td>2.2</td><td>Medium</td></tr><tr><td>A.1.3.</td><td>A attributes should demonstrate if migration is supported
            by the infrastructure</td><td>2.2</td><td>Medium</td></tr><tr><td>A.1.4.</td><td>The API should be able to fully express a cluster (e.g. 5
            VMs, storage for each VM, two networks (a private one connecting
            the machines, and the public internet also connected to the load
            balancer), a fixed static IP for the website on the public
            internet)</td><td>2.9</td><td>High</td></tr><tr><td>A.1.5.</td><td>A means to add constraints (non-functional, functional) on
            attributes which are declared in a provisioning request</td><td>2.1</td><td>High</td></tr><tr><td>A.1.6.</td><td>Support the scheduling of resource execution. Allow
            provisioned resources to be execute sometime in the future from
            the original request</td><td>2.1</td><td>Medium</td></tr><tr><td>A.1.7.</td><td>Common operating systems should be supported</td><td>-</td><td>High</td></tr><tr><td>A.1.8.</td><td>Resources should be grouped according to provider
            policies</td><td>-</td><td>High</td></tr><tr><td>A.1.9.</td><td>Then requesting new resource(s) the request must be fully
            complete/describing</td><td>-</td><td>High</td></tr></tbody></table></div></div><br class="table-break"/><div class="table"><a id="id389143"/><p class="title"><b>Table 2. Functional requirements on VM management</b></p><div class="table-contents"><table summary="Functional requirements on VM management" border="1"><colgroup><col/><col/><col/><col/></colgroup><thead><tr><th style="text-align: center">ID</th><th style="text-align: center">Description</th><th style="text-align: center">Usecases</th><th style="text-align: center">Priority</th></tr></thead><tbody><tr><td>A.2.1.</td><td>Methods to start, stop, suspend and resume VMs must be
            available</td><td>2.1, 2.2, 2.3, 2.5, 2.11, 2.10</td><td>High</td></tr><tr><td>A.2.2.</td><td>Automated management in the event of a disaster should be
            supported</td><td>2.1, 2.7</td><td>Low</td></tr><tr><td>A.2.3.</td><td>Provide IDs for each backup disk and images</td><td>2.2</td><td>High</td></tr><tr><td>A.2.4.</td><td>Provide methods to donwload any backup</td><td>2.2</td><td>Medium</td></tr><tr><td>A.2.5.</td><td>API should offer functionality to enforce the following
            operations: deploy, shutdown, cancel, checkpoint, save, restore,
            poll (could be merged with monitoring)</td><td>2.3</td><td>High</td></tr><tr><td>A.2.6.</td><td>The state model should include: pending, booting, running,
            suspended, shutdown, cancel, failed</td><td>2.3</td><td>Medium</td></tr><tr><td>A.2.7.</td><td>Listing collections should be possible without listing all
            properties for each entry</td><td>2.4</td><td>Medium</td></tr><tr><td>A.2.8.</td><td>Allow resource representations to be updated and have those
            changes trigger events/changes upon VMs</td><td>-</td><td>Low</td></tr><tr><td>A.2.9.</td><td>Support the usage of terminal, web, desktop and automated
            management interfaces</td><td>2.10</td><td>Low</td></tr><tr><td>A.2.10.</td><td>Support the migration of resources from a physical resource
            to the cloud, from a cloud to another cloud and from a virtual
            resource to the cloud (This is a topic regarding
            Interoperability)</td><td>-</td><td>Medium</td></tr><tr><td>A.2.11.</td><td>Support a subset of all functions of today IaaS based
            Clouds (e.g. Amaton EC2)</td><td>2.6</td><td>Medium</td></tr><tr><td>A.2.12.</td><td>A common interface should be used which can be supported by
            many Cloud service providers (regarding Infrastructure and Data
            interfaces).</td><td>2.13, 2.14</td><td>Medium</td></tr></tbody></table></div></div><br class="table-break"/><div class="table"><a id="id389434"/><p class="title"><b>Table 3. Functional requirements on Network management</b></p><div class="table-contents"><table summary="Functional requirements on Network management" border="1"><colgroup><col/><col/><col/><col/></colgroup><thead><tr><th style="text-align: center">ID</th><th style="text-align: center">Description</th><th style="text-align: center">Usecases</th><th style="text-align: center">Priority</th></tr></thead><tbody><tr><td>A.3.1.</td><td>Support the creation of VPNs</td><td>2.3</td><td>Low</td></tr><tr><td>A.3.2.</td><td>Support multiple network connection (Public and
            Private)</td><td>2.1, 2.2, 2.3</td><td>High</td></tr><tr><td>A.3.3.</td><td>It must be possible to attach and change IPs at
            runtime</td><td>2.3, 2.7</td><td>Medium</td></tr><tr><td>A.3.4.</td><td>Support a tagging mechanism for a group of network
            connections</td><td>2.1, 2.2, 2.3</td><td>Low</td></tr><tr><td>A.3.5.</td><td>Support network setups which allow an 'Intercloud' setup
            (This relates to Integration)</td><td>-</td><td>Medium</td></tr></tbody></table></div></div><br class="table-break"/><div class="table"><a id="id389592"/><p class="title"><b>Table 4. Functional requirements on Storage management</b></p><div class="table-contents"><table summary="Functional requirements on Storage management" border="1"><colgroup><col/><col/><col/><col/></colgroup><thead><tr><th style="text-align: center">ID</th><th style="text-align: center">Description</th><th style="text-align: center">Usecases</th><th style="text-align: center">Priority</th></tr></thead><tbody><tr><td>A.4.1.</td><td>Allow the usage of URIs as mount points - allows reuse of
            Storage service offerings</td><td>2.1</td><td>High</td></tr><tr><td>A.4.2.</td><td>Allow the attachment of additional storage resources at
            runtime</td><td>-</td><td>Medium</td></tr></tbody></table></div></div><br class="table-break"/><div class="table"><a id="id389697"/><p class="title"><b>Table 5. Functional requirements on Image management</b></p><div class="table-contents"><table summary="Functional requirements on Image management" border="1"><colgroup><col/><col/><col/><col/></colgroup><thead><tr><th style="text-align: center">ID</th><th style="text-align: center">Description</th><th style="text-align: center">Usecases</th><th style="text-align: center">Priority</th></tr></thead><tbody><tr><td>A.5.1.</td><td>Methods which are capable to register, upload, update and
            download disk images must be available.</td><td>2.2</td><td>Medium</td></tr><tr><td>A.5.2.</td><td>Updates based on rsync commands to synchronize machines
            with physical equivalents should be supported</td><td>2.7</td><td>Medium</td></tr><tr><td>A.5.3.</td><td>When an upload completes successfully, an identifier should
            be returned</td><td>2.2</td><td>Low</td></tr></tbody></table></div></div><br class="table-break"/><div class="table"><a id="id389820"/><p class="title"><b>Table 6. Identifications/References</b></p><div class="table-contents"><table summary="Identifications/References" border="1"><colgroup><col/><col/><col/><col/></colgroup><thead><tr><th style="text-align: center">ID</th><th style="text-align: center">Description</th><th style="text-align: center">Usecases</th><th style="text-align: center">Priority</th></tr></thead><tbody><tr><td>A.6.1.</td><td>Unique IDs for VM images and their components must be
            available</td><td>2.2, 2.13, 2.14</td><td>High</td></tr><tr><td>A.6.2.</td><td>It must be possbile to tag resources and their
            components</td><td>2.10, 2.12</td><td>Medium</td></tr><tr><td>A.6.3.</td><td>It must be possible to search for resources based on e.g.
            tags.</td><td>2.10, 2.12</td><td>Medium</td></tr></tbody></table></div></div><br class="table-break"/><div class="table"><a id="id389943"/><p class="title"><b>Table 7. Monitoring</b></p><div class="table-contents"><table summary="Monitoring" border="1"><colgroup><col/><col/><col/><col/></colgroup><thead><tr><th style="text-align: center">ID</th><th style="text-align: center">Description</th><th style="text-align: center">Usecases</th><th style="text-align: center">Priority</th></tr></thead><tbody><tr><td>A.7.1.</td><td>Support pull-based monitoring that request the status of
            the elements such as network , VM ...</td><td>2.1, 2.2, 2.3</td><td>Medium</td></tr><tr><td>A.7.2.</td><td>Support for a publish/subscribe pattern that request events
            which occur in the VM or networks (such as Errors on some
            component, changes in the VM state and other periodic
            notifications)</td><td>2.2</td><td>Medium</td></tr><tr><td>A.7.3.</td><td>Attributes that define simple quick call to poll the list
            of servers, drives, etc should monitorable</td><td>2.4</td><td>Low</td></tr><tr><td>A.7.4.</td><td>Attributes about resource consumption of the VM from the
            hypervisor (CPU, memory...) should be monitorable</td><td>2.1, 2.2</td><td>Medium</td></tr><tr><td>A.7.5.</td><td>Management reports should be generated from in some of the
            following formats XML, PDF</td><td>-</td><td>Low</td></tr></tbody></table></div></div><br class="table-break"/></div><div class="section" title="Non-functional Requirements"><div class="titlepage"><div><div><h2 class="title"><a id="id390106"/>Non-functional Requirements</h2></div></div></div><p>This section deals with all the non-funtional requirements.</p><div class="table"><a id="id390116"/><p class="title"><b>Table 8. Security requirements</b></p><div class="table-contents"><table summary="Security requirements" border="1"><colgroup><col/><col/><col/><col/></colgroup><thead><tr><th style="text-align: center">ID</th><th style="text-align: center">Description</th><th style="text-align: center">Usecases</th><th style="text-align: center">Priority</th></tr></thead><tbody><tr><td>B.1.1.</td><td>Support the usage of X509 Certificates</td><td>2.3, 2.13, 2.14</td><td>High</td></tr><tr><td>B.1.2.</td><td>Support the usage of ACLs</td><td>B.1, 2.1</td><td>High</td></tr><tr><td>B.1.3.</td><td>Attributes to define Security levels should be available in
            the descriptions</td><td>2.1</td><td>High</td></tr><tr><td>B.1.4.</td><td>Transport and user level security should be given</td><td>2.1, 2.13, 2.14</td><td>High</td></tr><tr><td>B.1.5.</td><td>Allow geographical region to be specified</td><td>B.4</td><td>High</td></tr></tbody></table></div></div><br class="table-break"/><div class="table"><a id="id390273"/><p class="title"><b>Table 9. Quality of Service</b></p><div class="table-contents"><table summary="Quality of Service" border="1"><colgroup><col/><col/><col/><col/></colgroup><thead><tr><th style="text-align: center">ID</th><th style="text-align: center">Description</th><th style="text-align: center">Usecases</th><th style="text-align: center">Priority</th></tr></thead><tbody><tr><td>B.2.1.</td><td>Support capacities requirements for recovery / failover
            cases</td><td>2.7</td><td>Low</td></tr><tr><td>B.2.2.</td><td>Support of attributes in the VM description to define QoS
            level (this also includes the reponse times)</td><td>2.1</td><td>High</td></tr><tr><td>B.2.3.</td><td>Support of attributes in the VM describing the Isolation
            level</td><td>2.1</td><td>Medium</td></tr><tr><td>B.2.4.</td><td>Support of attributes for an advanced reservation
            functionality</td><td>2.3</td><td>Low</td></tr><tr><td>B.2.5.</td><td>Allow VM response times to be specified</td><td>B.4</td><td>High</td></tr></tbody></table></div></div><br class="table-break"/><div class="table"><a id="id390430"/><p class="title"><b>Table 10. Syntax</b></p><div class="table-contents"><table summary="Syntax" border="1"><colgroup><col/><col/><col/><col/></colgroup><thead><tr><th style="text-align: center">ID</th><th style="text-align: center">Description</th><th style="text-align: center">Usecases</th><th style="text-align: center">Priority</th></tr></thead><tbody><tr><td>B.3.1.</td><td>No development tools or libraries should be needed by the
            end-user</td><td>2.8</td><td>Medium</td></tr><tr><td>B.3.2.</td><td>Support simple JSON syntax to suppot Ajax interface</td><td>2.4, 2.10</td><td>Medium</td></tr><tr><td>B.3.3.</td><td>Clear definition of units (MB, GB etc) should be used in
            the requests (Like those defined by IEC 60027-2 A.2)</td><td>A.2, 2.4</td><td>Medium</td></tr></tbody></table></div></div><br class="table-break"/><div class="table"><a id="id390553"/><p class="title"><b>Table 11. Backup/Disaster recovery</b></p><div class="table-contents"><table summary="Backup/Disaster recovery" border="1"><colgroup><col/><col/><col/><col/></colgroup><thead><tr><th style="text-align: center">ID</th><th style="text-align: center">Description</th><th style="text-align: center">Usecases</th><th style="text-align: center">Priority</th></tr></thead><tbody><tr><td>B.4.1.</td><td>Support a backup functionality of cloud resources</td><td>-</td><td>Low</td></tr><tr><td>B.4.2.</td><td>The interface should reconsider failover, disaster recovery
            and business continuity plans</td><td>-</td><td>Medium</td></tr></tbody></table></div></div><br class="table-break"/></div></div></body></html>
